import axios from "axios";

import NProgress from "nprogress";
import "nprogress/nprogress.css"

import {userTempId} from "@/utils/auth"

//创建实例对象
const instance = axios.create({
    baseURL:"/sph",   //默认域名
    timeout:5000      //超时时间
})


//请求拦截
instance.interceptors.request.use((config)=>{
    //向 请求头添加 userTempId  用户的唯一临时标识符
    config.headers.userTempId = userTempId();
    //开启进度条
    NProgress.start();
    //返回请求的所有的配置信息
    return config;   
})

//响应拦截
instance.interceptors.response.use(
    (response)=>{ 
        //关闭进度条
        NProgress.done();
       //判断状态码。返回对应的数据
       switch(response.data.code){
            case 200:
                return response.data.data;
            case 201:
                alert(response.data.message);
                return;
            
       }

        // return response.data;
        
    },
    (error)=>{
        //统一输出错误信息
        console.log(error.message);

        //关闭进度条
        NProgress.done();

        // 1. 返回一个 失败状态的Promise
        // return Promise.reject(()=>{});
        // throw error.message;

        // 2. 返回一个 pending 状态的 Promise
        return new Promise(()=>{});
    }
)



//暴露对象
export default instance;


